﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

namespace Tp2
{
    public partial class login : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //On met une action sur le form
            String login = Convert.ToString(Session["login"]);

            //Si on est connecté on affiche le champs de deconnexion
            if (login != "")
            { 
                this.connexion.Visible = false;
                this.deconnexion.Visible = true;
                this.msgBonjour.InnerHtml = "Bonjour, " + login + " !";
            }
            else
            {
                //On affiche les champs de connexion
                this.deconnexion.Visible = false;
                this.connexion.Visible = true;
            }
        }
        public void Connexion(object sender, EventArgs e)
        {
            //On recherche dans la BD si l'utilisateur existe

            SqlConnection connexion;
            SqlCommand commande;
            SqlDataReader lecteur;

            // Chaîne pour la connexion à la BD; spécifie le "driver" à utiliser
            // et l'emplacement de la base de données.
            String cheminBD = Server.MapPath("App_Data/TP2.mdf");
            String chaineConnexion = "Data Source=.\\SQLEXPRESS;AttachDbFilename=" + cheminBD + ";Integrated Security=True;User Instance=True";


            // Création d'un objet "OleDbConnection" avec la chaîne de connexion.
            connexion = new SqlConnection(chaineConnexion);
            // Ouverture de la connexion.
            connexion.Open();

            String requete = "SELECT * FROM clients AS NbClient WHERE login='" + this.txtLogin.Value + "' AND motPasse='" + this.txtMotPasse.Value + "'";

            commande = new SqlCommand(requete, connexion);
            lecteur = commande.ExecuteReader();

            if (!lecteur.HasRows)
            {
                //On affiche un message d'erreur
                this.msgErreur.InnerHtml = "Login ou mot de passe invalide.";

                //On ferme la bd
                lecteur.Close();
                connexion.Close();
            }
            else
            {
                //on créé une session
                Session["login"] = txtLogin.Value;

                //On ferme la bd
                lecteur.Close();
                connexion.Close();

                //On affiche la deconnexion
                Response.Redirect(Request.RawUrl);
                //wtf
                //this.connexion.Visible = false;
                //this.deconnexion.Visible = true;
                //this.msgBonjour.InnerHtml = "Bonjour, " + txtLogin.Value + " !";
            }
        }
        public void Deconnexion(object sender, EventArgs e)
        {
            //On supprime la session login (pour garder le panier s'il y a lieu
            Session["login"] = null;
            Response.Redirect(Request.RawUrl);
        }
    }
}